import request from "@/utils/request";

// state存储数据的地方
const state = {
  categoryData: {},
  category2Data: {},
  category2Id: 0,
};
// 唯一可以修改仓库数据的地方
const mutations = {
  CATEGORYLIST(state, navCategoryData) {
    state.categoryData = navCategoryData;
  },
  SAVEINDEX(state, id) {
    state.category2Id = id;
  },
};
// 可以书写业务、逻辑
const actions = {
  // 发请求获取左侧每个导航对应的数据(一级分类的数据)
  async categoryList({ state, dispatch, commit }, id = 11) {
    let result = await request.get("/wy/item/cateList.json?__timestamp=1630131455012&categoryId=" + id);
    // console.log(result);
    commit("CATEGORYLIST", result.data);
  },
  // 发请求获取二级分类的数据
  async cateGroupData({ state, dispatch, commit }, { categoryId, subCategoryId }) {
    let result = await reqCateGroupDate(categoryId, subCategoryId);
    // console.log(result);
    commit("CATEGROUPDATA", result.data);
  },
  // 保存点击二级分类商品的索引
  saveIndex({ state, dispatch, commit }, id) {
    commit("SAVEINDEX", id);
  },
};
// 计算属性getters:简化数据[让组件获取数据的更加方便]
const getters = {
  // 当前点击的分类数据
  currentCategory() {
    return state.categoryData.currentCategory || {};
  },
  // 左侧导航列表
  categoryL1List() {
    return state.categoryData.categoryL1List || [];
  },
  // 点击右侧后二级分类数据列表
  categoryL2List() {
    return state.categoryData.categoryL2List || [];
  },
  // 右侧分组数据
  categoryGroupList() {
    return state.categoryData.categoryGroupList || [];
  },

  // 商品分类列表数据
  categoryItems() {
    return state.category2Data.categoryItems || {};
  },
  // 一级分类相关数据
  categoryL1() {
    return state.category2Data.categoryL1 || {};
  },
  // 二级分类下的商品列表
  categoryL2List() {
    return state.category2Data.categoryL2List || [];
  },
};
//对外暴露小仓库
export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters,
};
